class A
{
    public int i = 1;

    public A(int i)
{
        System.out.printf("%d\n",this.i);
        System.out.printf("%d\n",i);
        this.i = i;

    }
    public void show()
    {
        System.out.printf("%d\n",this.i);
        System.out.printf("%d\n",i);
    }
}
public class Testthis
{
    public static void main(String[] args)
    {
        A aa = new A(10);              
        aa.show();
        System.out.printf("%d\n",aa.i);
    }
}
/*
输出的结果，自上而下：
1
10
10
10
10
说明，this是指此时刻正在创建对象的类的属性
由类创建的对象的属性是在堆中存放的
但类中的方法是在代码区存放的
并且，无论有多少个对象，一个类的方法只分配一次空间，
即多个对象的属性公用一个方法
其中为了区分是哪个对象在调用方法，在Java内部引用了this指针
但是Java内部帮我们自动实现了，也可以说sun公司把这个问题给屏蔽了
*/